DAO ist ein Akronym für die Objektbibliothek Data Access Objects. Datenbanken bestehen aus der Sicht des DAO-Anwenders aus Objekten. Zwei wichtige Klassen von Objekten sind Databases und Recordsets. Jede geöffnete Datenbank ist ein Database-Objekt mit bestimmten Eigenschaften und Methoden. Die Version-Eigenschaft hält zum Beispiel fest, mit welcher Softwareversion die Datenbank erstellt wurde oder die CreateTableDef-Methode definiert eine Tabelle dieser Datenbank. Ein Recordset-Objekt stellt Datensätze (engl. records) einer Basistabelle oder eines Abfrageergebnisses dar. Ein Recordset besteht seinerseits aus Objekten, nämlich Feldern (Spalten, Attribute). Jedes Attribut besitzt eine Eigenschaft Value, welche den Attributinhalt speichert. Eine wichtige Recordset-Methode ist OpenRecordset. Sie erstellt ein neues Objekt und fügt es an die laufende Recordsets-Auflistung an.
Eine einfache Satzverarbeitung unter DAO läuft in vier Schritten ab:
Vereinbart werden Objektvariablen der Klassen Database und Recordset. Diese zeigen auf eine geöffnete Datenbank (siehe Ziff. 2), einen geöffneten Recordset oder die Konstante Nothing:
Dim laufendeDatenbank As Database Dim Datensätze As Recordset
Weil Datenbank- und Recordsetvariablen auf Objekte verweisen, behandelt sie Visual Basic anders als einfache Variablen. Der Zuweisungsoperator = genügt nicht, um ihnen ein Wert zuzuweisen. Erforderlich ist zusätzlich das Befehlswort Set:
Set laufendeDatenbank = CurrentDb 'CurrentDb ist eine eingebaute Funktion (Methode) Set Datensätze = laufendeDatenbank.OpenRecordset(...)
OpenRecordset verlangt als Präfix das Objekt, auf das sich die Methode bezieht (hier laufendeDatenbank). Die Argumente von OpenRecordset beschreiben die Quelle der Datensätze (eine Basis- oder eine Ergebnistabelle).
OpenRecordset positioniert auf den ersten Satz der Datenquelle. Manchmal genügt es, diesen ersten (und vielleicht einzigen) Satz zu bearbeiten (Verarbeitung eines einzigen Satzes). Meist ist aber eine Navigation durch mehrere Datensätze erforderlich (Satzverarbeitung in einer Schleife).
Objekte benötigen mehr Ressourcen als einfache Variablen. Es ist deshalb ratsam, geöffnete Objekte sobald wie möglich zu schliessen. Um ausserdem zu dokumentieren, dass der Verweis auf eine geschlossene Objektvariable nicht mehr gilt, weist man dem Objektverweis Nothing zu:
Datensätze.Close Set Datensätze = Nothing
Verarbeitung
eines einzigen Satzes